﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Linq;
using FakeDataGen;
using System.Reflection;

namespace DataGenerator
{
    class Program
    {
        static FakeData fakeData = new FakeData();
        static string filename = "dados";
        static int q = 100;

        static void Main(string[] args)
        {
            FakeDataType[] dados = { FakeDataType.Name, FakeDataType.CPF, FakeDataType.Date, FakeDataType.Phone, FakeDataType.Address, FakeDataType.Email };

            fakeData.CPFValido = true;
            fakeData.CPFPontuado = true;
            fakeData.PhonePontuado = true;
            XDocument doc = fakeData.XML(q, "Clients", "Client", dados);
            doc.Save(GeraCaminho("xml"));
            //Console.WriteLine(doc);

            String sql = fakeData.SQL(q, "Clients", dados);
            SalvaArquivo(sql, GeraCaminho("sql"));
            //Console.WriteLine(sql);

            String csv = fakeData.CSV(q, dados);
            SalvaArquivo(csv, GeraCaminho("csv"));
            //Console.WriteLine(csv);

            Console.Read();
        }

        private static string GeraCaminho(string extensao)
        {
            return Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop) + "\\" + filename + "." + extensao;
        }

        private static void SalvaArquivo(string conteudo, string caminho)
        {
            FileStream fs = new FileStream(caminho, FileMode.Create);

            try
            {
                fs.Write(ASCIIEncoding.UTF8.GetBytes(conteudo), 0, conteudo.Length);
                Console.WriteLine("arquivo escrito com sucesso");
            }
            catch (Exception)
            {
                Console.WriteLine("erro ao salvar o arquivo");
            }
            finally
            {
                fs.Dispose();
            }
        }
    }
}
